x = 10
print(x)
x = 20
print(x)10
20
Un peu de révisions ne fait jamais de pas de mal
Ményssa Cherifa-Luron
27 mai 2024
Si tu as déjà des notions avancées en prog Python, passe directement à la programmation orientée objets
Sinon, si tu es là c’est que tu veux apprendre Python, et que tu me fais confiance pour être ta formatrice ! Alors MERCI !!
Avant de commencer ta lecture du cours, note que le texte dans une cellule noir, chunk, représente du code python. En dessous de chaque chunk, tu trouveras le résultat de correspondant à l’exécution des intructions contenues dans le chunk.
Voilà c’est tout. Let’s go !
Alors comme ça, tu veux en savoir plus sur les origines de ce langage mythique ? Accroche-toi, je te raconte !
Fig 1. Logo python
Python, c’est l’œuvre d’un certain Guido van Rossum, qui l’a créé en 1989.
Et devine quoi ? Le nom “Python” n’a rien à voir avec les serpents ! C’est en fait un clin d’œil à la série loufoque “Monty Python’s Flying Circus”. Comme quoi, l’humour et la programmation font bon ménage ! 😄
Mais Python, c’est bien plus qu’une private joke. Ce langage a de sacrés atouts comme par exemple le fait qu’il est :
✅ Multi-plateforme : il s’adapte à tous les environnements, tel un caméléon
✅ Gratuit et libre : accessible à tous les padawans de la data
✅ Haut niveau et interprété : parfait pour progresser rapidement
✅ Orienté objet : pour modéliser le monde réel de façon intuitive
✅ Simple et lisible : le code Python se lit presque comme de l’anglais
Mais pour coder comme un pro, il te faudra plus qu’aligner des instructions et des lignes de commandes. Il te faudra adopter le style d’un pythonista. Aussi, je te réserve un petit passage dessus à la fin de ce cours. Mais si tu es pressé, jette un œil à mon mini-cours juste ici 👇
Tu verra que la PEP8, c’est un peu la bible des bonnes pratiques, largement suivie dans l’industrie.
Ensuite, parlons environnement de dev. Tu vas sûrement bosser sur Jupyter ou Google Colab pour tes notebooks.
C’est top, mais attention : si tu bosses sur plusieurs projets, tu vas vite te retrouver avec un joyeux bordel de versions de modules Python !
La solution ? Les environnements virtuels ! C’est un peu comme avoir un appart’ dédié pour chaque projet, avec ses propres meubles (modules) et sa déco (config). Bref, ça t’évitera bien des maux de tête. Comme la gestion d’environnement virtuel est un peu avancé, nous verrons pas cela aujourd’hui, mais tu peux quand même y jeter un oeil à ce mini-cours juste ici 👇(bientot)
Si tu veux en savoir plus sur les options de setup Python (local vs cloud), jette un oeil à cet article. C’est une mine d’or !
Enfin, le truc CRUCIAL à retenir : en Python, l’indentation c’est pas juste pour faire joli. C’est VITAL pour que ton code marche ! Alors on prend direct le pli d’utiliser 4 espaces (pas de tabs, hein !).
Bref, Python a tout pour plaire, c’est le couteau suisse du développeur !
Alors prët à apprendre, coder et s’amuser ?
En savoir plus ? Rends toi sur le site officiel
Avant de commencer à écrire du code en Python, il faut d’abord installer Python sur ton ordinateur. Voici comment faire en quelques étapes simples.
cmd et appuie sur Entrée).python --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.python3 --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.La plupart des distributions Linux incluent Python par défaut. Toutefois, tu peux installer ou mettre à jour Python en suivant ces étapes :
sudo apt update (pour les systèmes basés sur Debian/Ubuntu) ou sudo yum update (pour les systèmes basés sur Red Hat/Fedora) et appuie sur Entrée.sudo apt install python3sudo yum install python3python3 --version et appuie sur Entrée. Tu devrais voir la version de Python s’afficher, confirmant ainsi que Python est installé correctement.Pour écrire du code en Python, tu auras besoin d’un éditeur de code ou d’un environnement de développement intégré (IDE). Voici quelques recommandations :
pip install notebook.Pour vérifier que tout fonctionne correctement, ouvre ton éditeur de code ou ton terminal, et tape le code suivant :
Si tu vois s’afficher Hello, World!, félicitations ! Tu es prêt à commencer ton aventure en Python. 🚀
Maintenant que Python est installé sur ton ordinateur, passons aux commentaires.
Les commentaires # sont utilisés pour expliquer le code. Les commentaires sont toujours ignorés lors de l’exécution du code.
Ce sont juste des post-it collés sur ton script 📝 Ils t’aident à garder le cap quand tu relis ton code 3 mois plus tard !
Quelques tips de pro pour tes commentaires :
Sois bref mais explicite
Indique l’objectif du bloc de code
Explique les paramètres et valeurs retournées des fonctions
Note les points d’amélioration possibles
Avec des bons commentaires, ton code devient facile à suivre !
Ils commencent par un # et s’étendent jusqu’à la fin de la ligne.
En résumé, les commentaires sont des outils essentiels pour rendre ton code plus compréhensible et maintenable sur le long terme. Prends le temps de les rédiger avec soin, tes collègues (et ton toi du futur) te remercieront !
Les variables, c’est un peu comme des boîtes dans lesquelles tu peux ranger des trucs : des nombres, du texte, etc.
Par exemple, si tu écris x = 10, tu crées une variable “x” qui contient (ou stock) la valeur 10. Easy !
Le truc cool avec Python, c’est qu’il devine tout seul le type de données que tu mets dans la variable.
C’est ce qu’on appelle le typage dynamique. Pratique, non ?
Quelques règles de base à retenir sur les variables :
Pour donner une valeur à une variable, on utilise le signe égal (=). C’est l’affectation.
Tu peux écraser la valeur d’une variable en lui réaffectant une nouvelle valeur. Exemple :
Pour les noms de variables, tu as le choix entre :
la casse camel : monNomDeVariable
la casse Pascal : MonNomDeVariable
la casse serpent : mon_nom_de_variable
Évite juste de commencer les noms par des chiffres, d’utiliser des caractères spéciaux et de mélanger chiffres et lettres n’importe comment.
Allez, on récapitule le tout dans le script suivant :
# Affectation simple
Ma_variable = 10
print(Ma_variable)
# Affectation de plusieurs valeurs
x, y, z = "Chocolat", "Vanille", "Fraise"
print(x)
print(y)
print(z)
# Affectation de la même valeur
x = y = z = "Chocolat"
print(x)
print(y)
print(z)10
Chocolat
Vanille
Fraise
Chocolat
Chocolat
Chocolat
En Python, chaque variable a un type bien précis. C’est un peu comme les groupes sanguin : A, B, AB ou O. Sauf qu’ici, on a :
Les entiers (int) : pour les nombres sans virgule. Exemples : 5, -3, 0.
Les nombres complexes (complex) : pour les maths de l’espace ! Exemple : 3 + 4j.
Les flottants (float) : pour les nombres à virgule. Exemples : 3.14, -0.001.
Les chaînes de caractères (str) : pour le texte, entouré de guillemets. Exemple : “Hello World!”
Les booléens (bool) : pour les valeurs “vrai” (True) ou “faux” (False). Souvent le résultat de comparaisons.
Pourquoi c’est important de connaître le type d’une variable ? Parce que tu ne peux pas additionner des pommes et des poires ! Enfin si, mais ça donne une compote que je n’aime pas… 🍎+🍐=🤢
Plus sérieusement, chaque type a ses propres opérations possibles. Tu peux multiplier deux int, concaténer deux str, mais pas l’inverse.
Allez, un petit défi : devine le type des variables suivantes :
a = 42
b = “42”
c = 42.0
d = True
e = 2 + 3j
Une fois une variable définie, pour obtenir son type tu peux utiliser la commande type().
# Afficher le type d'une variable
bonjour = "Hello"
type(bonjour)
# Définition de plusieurs variables
nom = "Alice"
age = 25
taille = 1.70
estVrai = True
estFaux = False
print("la variable nom est de type :", type(nom))
print("la variable age est de type :",type(age))
print("la variable taille est de type :",type(taille))
print("la variable estVrai est de type :",type(estVrai))
print("la variable estFaux est de type :",type(estFaux))la variable nom est de type : <class 'str'>
la variable age est de type : <class 'int'>
la variable taille est de type : <class 'float'>
la variable estVrai est de type : <class 'bool'>
la variable estFaux est de type : <class 'bool'>
Le casting, c’est un peu comme dans un film : tu prends un acteur (une valeur) et tu lui fais jouer un autre rôle (un autre type). 🎥
En Python, tu peux facilement convertir une variable entre les types de base par exemple :
🎬 int ➡ str
🎬 str ➡ int
🎬 float ➡ int
🎬 int ➡ bool
Mais attention aux pièges !
Toutes les conversions ne sont pas possibles, comme transformer un texte en nombre :
prix = "dix" prix_int = int(prix) # Erreur : ValueError
int)str)bool)## Depuis une chaîne de caractères** :
chaine = ""
booleen = bool(chaine) # Convertit une chaîne vide en False
chaine2 = "Python"
booleen2 = bool(chaine2) # Convertit "Python" en True
## Depuis un nombre :
nombre = 0
booleen = bool(nombre) # Convertit 0 en False
nombre2 = 123
booleen2 = bool(nombre2) # Convertit 123 en Truefloat)## Depuis une chaîne de caractères:
chaine = "123.45"
flottant = float(chaine) # Convertit la chaîne "123.45" en float 123.45
## Depuis un entier :
entier = 100
flottant = float(entier) # Convertit l'entier 100 en float 100.0
## Depuis un booléen:
vrai = True
flottant = float(vrai) # Convertit True en 1.0En Python, tu peux faire des maths facilement avec ces 4 opérateurs :
L’addition (+) : pour ajouter des nombres Exemple : 3 + 2 = 5
La soustraction (-) : pour soustraire des nombres Exemple : 5 - 2 = 3
La multiplication (*) : pour multiplier des nombres Exemple : 3 * 2 = 6
La division (/) : pour diviser des nombres Exemple : 6 / 2 = 3
Facile, non ? Mais attends, y’a encore plus fort ! Python gère aussi :
Les puissances (**) : pour les exposants Exemple : 2 ** 3 = 8 (2 puissance 3)
Les divisions entières (//) : pour obtenir un résultat entier Exemple : 7 // 2 = 3
Les modulos (%) : pour obtenir le reste d’une division Exemple : 7 % 2 = 1 (car 7 divisé par 2 donne 3 reste 1)
Modulo (%) retourne le reste de la division Puissance (**) élève un nombre à une certaine puissance.
Grâce à ces 2 opérateurs magiques :
La concaténation (+) : pour combiner des chaînes Exemple : “Hello” + ” World!” = “Hello World!”
La répétition (*) : pour répéter une chaîne un certain nombre de fois Exemple : “Ha” * 3 = “HaHaHa”
C’est aussi simple que ça ! Mais attention, y’a quelques règles à respecter :
⚠️ Tu ne peux pas concaténer des types différents (string + int par exemple). Faudra d’abord les convertir.
⚠️ La répétition ne marche qu’avec des entiers positifs. Pas de “Ha” * -3 ou “LOL” * 2.5 !
Les opérateurs d’affectation composés sont des raccourcis qui combinent une opération arithmétique ou binaire avec une affectation.
En gros, ils permettent d’effectuer une opération sur une variable et de lui réaffecter le résultat en une seule étape.
# Initialisation de x
x = 5
print(x)
# Ajouter et assigner
x += 2 # x est maintenant 7
print(x)
# Soustraire et assigner
x -= 3 # x est maintenant 4
print(x)
# Multiplier et assigner
x *= 4 # x est maintenant 16
print(x)
# Diviser et assigner
x /= 2 # x est maintenant 8
print(x)
# Division entière et assigner
x //= 3 # x est maintenant 2
print(x)
# Modulo et assigner
x %= 3 # x est maintenant 2
print(x)
# Exponentielle et assigner
x **= 2 # x est maintenant 4
print(x)5
7
4
16
8.0
2.0
2.0
4.0
Commençons par la base : la fonction print(). Elle affiche simplement le texte que tu lui passe entre parenthèses. C’est comme un écriteau lumineux ! ✨
Mais que faire si tu veux inclure des valeurs de variables dans ton message ?
C’est là que le formatage entre en jeu ! 🎭
La méthode traditionnelle utilise la fonction format() :
Je m'appelle Alice et j'ai 25 ans.
C’est comme un modèle où {} sont des espaces réservés pour tes variables. Tu les remplis ensuite avec format() dans l’ordre.
Mais depuis Python 3.6, il y a une méthode encore plus cool : les f-strings !
Je m'appelle Bob et j'ai 30 ans.
Avec les f-strings, tu mets un f avant les guillemets et tu peux directement insérer tes variables entre {}. C’est plus concis et plus lisible !
Tu peux même faire des calculs dans les accolades :
Que dis-tu de formater tes nombres pour qu’ils aient toujours un certain nombre de décimales ? C’est super pratique pour afficher des prix ou des pourcentages !
Avec :.2f, tu dis à Python d’afficher ton nombre avec 2 décimales et un format flottant.
Et si tu veux aligner ton texte ? Pas de problème, Python a ce qu’il te faut !
produit = "pommes"
quantite = 3
print(f"{'Produit':<10} {'Quantité':>10}")
print(f"{produit:<10} {quantite:>10}")Produit Quantité
pommes 3
Avec :<10, :^10, et :>10, tu alignes le texte à gauche, au centre, ou à droite sur 10 caractères. C’est parfait pour créer des tableaux bien alignés !
Tu peux même combiner ces options pour un contrôle total du formatage :
La fonction input() est comme un formulaire ! Elle permet de demander à l’utilisateur de saisir des données au clavier.
Ici, le programme demande à l’utilisateur de saisir son nom, puis le salue personnellement. C’est comme un dialogue interactif ! 💬
Quelques points importants à noter : - La fonction input() renvoie toujours une chaîne de caractères (str). Si tu veux un nombre, tu dois convertir la réponse avec int() ou float().
Tu peux stocker la réponse de l’utilisateur dans une variable pour l’utiliser plus tard dans ton programme.
N’oublie pas d’afficher un message clair pour guider l’utilisateur sur ce qu’il doit saisir.
Voici un autre exemple pour calculer l’âge d’une personne :
nom = input("Comment vous appelez-vous ? ")
age = int(input("Quel âge avez-vous ? "))
print(f"{nom}, dans 10 ans vous aurez {age + 10} ans !")Ici, on demande le nom et l’âge de l’utilisateur. On convertit l’âge en nombre entier avec int() pour pouvoir faire un calcul. Puis on affiche un message personnalisé. C’est magique ! ✨
🔢 Les variables sont des espaces de stockage nommés pour contenir des données qui peuvent changer pendant l’exécution du programme.
🎨 Les types de données incluent les entiers, les flottants, les chaînes de caractères, les booléens, etc.
➕ Les opérateurs pour les nombres incluent + (addition), - (soustraction), * (multiplication), / (division), % (modulo).
🔗 Pour les chaînes, + sert à la concaténation et * à la répétition.
🔄 Les opérateurs composés (+=, -=, *=, /=, %=) combinent opération et affectation.
🖨️ La fonction print() affiche du texte et des valeurs de variables.
🎭 La méthode format() permet d’insérer des valeurs dans un modèle de chaîne.
📝 La fonction input() permet de demander une saisie à l’utilisateur.
Ouvre un notebook intitulé : 1_variables.ipynb et mets tes connaissances à l’épreuve avec ces exercices rapides :
nom et assigne-lui ton prénom.age et assigne-lui ton âge.nom et age en utilisant la fonction print().x et assigne-lui la valeur 10.y et assigne-lui la valeur 5.somme et calcule la somme de x et y.somme.prenom et assigne-lui ton prénom.nom_famille et assigne-lui ton nom de famille.nom_complet et concatène prenom et nom_famille avec un espace entre eux.nom_complet.a, b, c et assigne-leur respectivement les valeurs 1, 2 et 3 en une seule ligne.a, b et c en une seule ligne en utilisant print().temp et assigne-lui la valeur 10.temp la valeur 20.temp.prix et assigne-lui la valeur “100” (chaîne de caractères).prix en entier et assigne-le à une nouvelle variable prix_entier.prix_entier et affiche le résultat.input().format()print()print("Bienvenue dans le Générateur de Cartes de Visite ! 🎨")
# nom = input("Quel est votre nom ? ")
# poste = input("Quel est votre poste ? ")
# email = input("Quelle est votre adresse email ? ")
# telephone = input("Quel est votre numéro de téléphone ? ")
print("Voici votre carte de visite :")
print("================================")
print("| {:<30} |".format(nom))
print("| {:<30} |".format(poste))
print("| {:<30} |".format(email))
print("| {:<30} |".format(telephone))
print("================================")Ton code est comme un GPS qui te guide vers ta destination (le résultat). Les structures de contrôle sont les différentes routes que tu peux emprunter en fonction des conditions ou des répétitions.
Les structures de contrôle :
🧠 La prise de décision : elles permettent à ton programme de faire des choix intelligents en fonction de conditions spécifiques. Un peu comme choisir entre prendre le métro ou le vélo selon la météo ! ⛅
🔁 La répétition de tâches : tu peux répéter des actions à l’infini sans avoir à réécrire le même code.
🎛️ La gestion du flux : tu as un contrôle total sur le déroulement de ton programme. Tu peux décider quand accélérer, ralentir ou faire des détours.
Les opérateurs permettent de définir des expressions logiques. Voilà c’est tout.
Les opérateurs de comparaison sont essentiels en Python. Ils comparent deux valeurs et renvoient soit True soit False, selon le résultat de la comparaison.
C’est comme avoir un juge impartial qui te dit si deux valeurs sont égales, différentes, ou laquelle est plus grande que l’autre.
| Opérateur comparaison | Description | Exemple | Résultat |
|---|---|---|---|
| == | Égalité | 5 == 5 |
True |
| != | Différent de | 5 != 3 |
True |
| > | Supérieur à | 5 > 3 |
True |
| < | Inférieur à | 3 < 5 |
True |
| >= | Supérieur ou égal à | 5 >= 5 |
True |
| <= | Inférieur ou égal à | 3 <= 5 |
True |
Les opérateurs logiques sont les gardiens de la vérité en Python. Ils te permettent de combiner des expressions logiques pour obtenir un résultat final basé sur les conditions spécifiées. C’est comme créer des alliances stratégiques pour découvrir la vérité ultime.
| Opérateur logique | Description | Exemple | Résultat |
|---|---|---|---|
| and | Et | True and False |
False |
| or | Ou | True or False |
True |
| not | Non | not True |
False |
Les opérateurs d’appartenance vérifient si une valeur ou une chaîne de caractères se trouve à l’intérieur d’une autre valeur, chaîne de caractères ou séquence.
| Opérateur d’appartenance | Description | Exemple | Résultat |
|---|---|---|---|
| in | Dans | 'a' in 'banana' |
True |
| not in | Pas dans | 'x' not in 'banana' |
True |
texte = "Hello, World!"
print('H' in texte)
print('hello' in texte)
print('Hello' not in texte)
print('x' not in texte) True
False
False
True
Les opérateurs permettent de définir des expressions logiques.
Voici quelques exemples :
Ouvre un notebook intitulé : 2_structures_controles.ipynb et mets tes connaissances à l’épreuve avec ces exercices rapides :
a et b avec des valeurs différentes. Utilise tous les opérateurs de comparaison pour imprimer les résultats des comparaisons entre a et b.a est supérieur à b et si a est pair.# Déclaration de la chaîne de caractères
texte = "Hello, World!"
# Vérification de la présence de sous-chaînes
print("'Hello' in texte:", 'Hello' in texte)
print("'hello' in texte:", 'hello' in texte)
print("'World' not in texte:", 'World' not in texte)
print("'Python' not in texte:", 'Python' not in texte) Imagine que tu es en train de coder le GPS de Waze, ton boulot est de créer un programme qui indique à l’utilisateur la bonne route à prendre en fonction des conditions de circulation.
C’est exactement ce que font les instructions if, elif et else ! 🚦
🟢 L’instruction if teste une condition. Si elle est vraie, le code sous le if est exécuté. C’est comme si ton GPS disait : “Si la route est dégagée, prends la voie rapide !” 🏎️
🟡 L’instruction elif (abréviation de “else if”) permet de tester une autre condition si la précédente était fausse. C’est comme si ton GPS disait : “Sinon, si la voie rapide est bouchée, prends la nationale.” 🚗
🔴 Enfin, l’instruction else capture tous les cas qui ne correspondent pas aux conditions précédentes. C’est le dernier recours de ton GPS : “Si tout le reste échoue, sors les chaussures de randonnée !” 🥾
Voici un exemple concret pour t’aider à choisir le bon tarif en fonction de l’âge :
age = 25
if age >= 65:
print("Tu bénéficies de la tarification senior. 🧓")
elif age < 18:
print("Tu bénéficies de la tarification jeune. 👦")
else:
print("Tu bénéficies de la tarification standard. 💰")Tu bénéficies de la tarification standard. 💰
Tu peux également combiner plusieurs conditions en utilisant les opérateurs logiques and, or et not. Par exemple pour offrir une promotion spéciale aux clients qui ont entre 18 et 25 ans ET qui sont étudiants.
Voici comment ton code pourrait gérer ça :
age = 20
est_etudiant = True
if age >= 18 and age <= 25 and est_etudiant:
print("Félicitations, vous bénéficiez de la promotion spéciale étudiante ! 🎓")
else:
print("Désolé, vous ne remplissez pas les conditions pour cette promotion. 😞")Félicitations, vous bénéficiez de la promotion spéciale étudiante ! 🎓
Ici, les conditions sont combinées avec and, ce qui signifie que toutes doivent être vraies pour que le code sous le if soit exécuté.
Tu peux aussi utiliser or pour exécuter le code si au moins une des conditions est vraie, et not pour inverser une condition.
Avec les conditions imbriquées, tu peux créer des instructions “si… alors… sinon…” à l’infini ! 🌀
Prenons un exemple concret. Disons que tu veux catégoriser les clients en fonction de leur âge et de leur statut étudiant :
age = 20
est_etudiant = True
if age < 18:
print("Vous bénéficiez du tarif junior. 👦")
else:
if est_etudiant:
print("Vous bénéficiez du tarif étudiant. 🎓")
else:
print("Vous bénéficiez du tarif standard. 💰")Vous bénéficiez du tarif étudiant. 🎓
Ici, on a une première condition qui vérifie si le client a moins de 18 ans. Si ce n’est pas le cas, on passe à une deuxième condition imbriquée dans le else pour vérifier si le client est étudiant.
Tu peux imbriquer autant de conditions que nécessaire pour gérer tous les cas de figure. Mais attention à ne pas te perdre dans les méandres des conditions imbriquées. Ton code doit rester lisible et compréhensible.
N’hésite pas à ajouter des commentaires pour expliquer ton raisonnement.
Toutefois il existe une façon plus concise de le faire : l’expression conditionnelle (ternary operators”).
Voici comment ça marche :
En gros, “Si la condition est vraie, prends la première sortie. Sinon, prends la deuxième.”
L’expression conditionnelle est structurée ainsi : valeur_si_vrai if condition else valeur_si_faux.
Voici un autre exemple pour t’inspirer :
note = 85
resultat = "Bravo, vous avez réussi ! 🎉" if note >= 60 else "Dommage, vous avez échoué. 😞"
print(resultat) Bravo, vous avez réussi ! 🎉
Tu pourrais utiliser des expressions conditionnelles en cascade, comme ceci :
age = 25
etudiant = True
statut = "junior" if age < 18 else ("etudiant" if etudiant else "adulte")
print(statut) etudiant
Ici, on a une expression conditionnelle (“junior” if age < 18) imbriquée dans une autre (“etudiant” if etudiant else “adulte”). C’est comme des poupées russes ! 🪆
Bien sûr, il faut utiliser cette technique avec parcimonie ça peut vite faire mal à la tête.
Récapitulons tout ce que tu as appris :
🚦 Les instructions if, elif et else pour prendre des décisions en fonction de conditions. 🧩 Les opérateurs logiques and, or et not pour combiner des conditions. 🌀 Les conditions imbriquées pour créer des structures de décision complexes. 🥪 Les expressions conditionnelles (opérateur ternaire) pour assigner des valeurs de manière concise. 🔗 Les conditions chaînées pour enchaîner des comparaisons de manière lisible.
Toujours dans le notebook : 2_structures_controles.ipynb essaye de résoudre ces exercices rapides.
Tu es restaurateur et tu veux rapidement calculer le pourboire en fonction de la qualité du service. 1. Demande à l’utilisateur le montant de la facture et une note pour le service (entre 1 et 5). 2. Calcule et affiche le pourboire suggéré
print("Bienvenue dans le Calculateur de Pourboire ! 🧮")
facture = float(input("Quel est le montant de la facture ? "))
note = int(input("Comment noteriez-vous le service (entre 1 et 5) ? "))
if note == 5:
pourboire = facture * 0.20
elif note == 4:
pourboire = facture * 0.15
elif note == 3:
pourboire = facture * 0.10
else:
pourboire = facture * 0.05
print(f"Pour une facture de {facture:.2f} € et un service noté {note}/5, nous suggérons un pourboire de {pourboire:.2f} €.")Écris un programme qui détermine si un nombre est pair ou impair.
if/else pour vérifier si le nombre est pair ou impair.Rappels sur la parité : - Un nombre est pair s’il est divisible par 2 (le reste de la division par 2 est 0). - Un nombre est impair s’il n’est pas divisible par 2 (le reste de la division par 2 est 1). - L’opérateur modulo % donne le reste d’une division.
Écris un programme qui effectue une opération arithmétique de base entre deux nombres.
+, -, *, /).if/elif/else pour effectuer l’opération correspondante.Points clés : - Utilise float() pour permettre des nombres décimaux. - Vérifie la division par zéro pour éviter les erreurs. - Gère les opérateurs non valides avec un message d’erreur.
num1 = float(input("Entrez le premier nombre : "))
num2 = float(input("Entrez le deuxième nombre : "))
operateur = input("Entrez l'opérateur (+, -, *, /) : ")
if operateur == "+":
resultat = num1 + num2
elif operateur == "-":
resultat = num1 - num2
elif operateur == "*":
resultat = num1 * num2
elif operateur == "/":
if num2 != 0:
resultat = num1 / num2
else:
print("Erreur : division par zéro !")
resultat = None
else:
print("Opérateur non valide.")
resultat = None
if resultat is not None:
print(f"{num1} {operateur} {num2} = {resultat}")Écris un programme qui détermine si une année est bissextile ou non.
Règles des années bissextiles : - Une année est bissextile si elle est divisible par 4. - Mais si elle est divisible par 100, elle doit aussi être divisible par 400 pour être bissextile. - Sinon, elle n’est pas bissextile.
annee = int(input("Entrez une année : "))
if annee % 4 == 0:
if annee % 100 == 0:
if annee % 400 == 0:
print(f"{annee} est une année bissextile.")
else:
print(f"{annee} n'est pas une année bissextile.")
else:
print(f"{annee} est une année bissextile.")
else:
print(f"{annee} n'est pas une année bissextile.")Écris un programme qui trouve le plus grand et le plus petit parmi trois nombres.
Astuces : - Utilise des expressions conditionnelles pour une syntaxe concise. - Compare chaque nombre aux deux autres pour trouver le max/min. - Pas besoin de trier complètement, juste de trouver les extrêmes.
a = float(input("Entrez le premier nombre : "))
b = float(input("Entrez le deuxième nombre : "))
c = float(input("Entrez le troisième nombre : "))
max_num = a if a >= b and a >= c else b if b >= c else c
min_num = a if a <= b and a <= c else b if b <= c else c
print(f"Le plus grand nombre est : {max_num}")
print(f"Le plus petit nombre est : {min_num}")Écris un programme qui détermine la catégorie d’âge d’une personne.
Catégories d’âge typiques : - Enfant : de 0 à 12 ans - Adolescent : de 13 à 17 ans
- Adulte : de 18 à 64 ans - Senior : 65 ans et plus
Des coding sessions sur mesure, parce que tu es unique et que
Tu rêves de progresser rapidement en code mais tu bloques sur certains concepts ?
Tu as besoin d'un coup de pouce personnalisé par un pro pour franchir un cap ? Pourtant
C'est le moment de réserver ta coding session individuelle avec un expert DAMA. Un vrai booster de compétences, sur-mesure, dès que tu en as besoin.
Comment ça marche ?
1. Tu remplis le formulaire de contact en 2 min pour exprimer ton besoin
2. On fixe ensemble un créneau pour un call vidéo de 60 min
3. Lors du call, moi ou un.e expert t'aide à résoudre ton problème de code en direct
Les avantages ?
Un accompagnement 100% personnalisé et interactif
Des conseils concrets et des astuces de pro
Un gros boost de motivation et de confiance
Alors n'attends plus et clique sur le bouton ci-dessous pour réserver ta session dès maintenant.
Si tu te demandes quelles ont été mes ressources pour ce cours, hormis le site officiel, les voici :
Python’s any and all functions: Documentation officielle sur les fonctions any et all de Python, qui permettent de vérifier si au moins un élément d’une séquence est vrai ou si tous les éléments sont vrais, respectivement.
Python’s eval() function: Documentation officielle sur la fonction eval() de Python, qui évalue une expression Python passée sous forme de chaîne de caractères.
filter() in Python: Documentation officielle sur la fonction filter() de Python, qui filtre les éléments d’une séquence en fonction d’une fonction de filtrage donnée.
dir() in Python: Documentation officielle sur la fonction dir() de Python, qui retourne la liste des noms dans l’espace de noms local ou global.
isinstance and issubclass in Python: Documentation officielle sur les fonctions isinstance() et issubclass() de Python, utilisées pour vérifier les types d’objets.
len() in Python: Documentation officielle sur la fonction len() de Python, qui retourne la longueur (le nombre d’éléments) d’un objet.
iter() in Python: Documentation officielle sur la fonction iter() de Python, qui retourne un itérateur pour un objet.
Why should I use operator.itemgetter(x) instead of [x]?: Une discussion sur Stack Overflow expliquant pourquoi il est préférable d’utiliser operator.itemgetter(x) plutôt que [x] pour accéder aux éléments d’une séquence.
Python’s Sorting HowTo wiki: Guide officiel sur la manière de trier en Python, présentant différentes méthodes de tri pour différentes situations.
Python’s Generators wiki: Page wiki officielle sur les générateurs en Python, expliquant leur utilisation et leur fonctionnement.
Python’s Decorators wiki: Page wiki officielle sur les décorateurs en Python, fournissant des informations sur leur utilisation et leur création.
Python’s Decorator Library: Bibliothèque officielle de décorateurs en Python, offrant une variété de décorateurs prêts à l’emploi pour différentes tâches.
How to make a chain of function decorators?: Une discussion sur Stack Overflow expliquant comment créer une chaîne de décorateurs de fonctions en Python.
A Guide to Python’s Magic Methods: Guide détaillé sur les méthodes magiques en Python, qui permettent de personnaliser le comportement des objets Python.
The Iterator Protocol: How “For Loops” Work in Python: Article expliquant en détail le protocole de l’itérateur en Python et comment les boucles for fonctionnent en utilisant ce protocole.
How to make an iterator in Python: Article expliquant comment créer un itérateur personnalisé en Python en implémentant les méthodes spéciales iter() et next().
Overusing lambda expressions in Python: Article expliquant les dangers de la surutilisation des expressions lambda en Python et quand il est approprié de les utiliser.
Python Errors and Built -in Exceptions: Documentation officielle sur les erreurs et exceptions intégrées en Python, expliquant les différentes erreurs et exceptions qui peuvent se produire dans un programme Python.
Python’s Functions Are First-Class: Article expliquant ce que signifie le fait que les fonctions sont des citoyens de première classe en Python, et comment cela influence la programmation en Python.
The Zen of Python, Explained: Article expliquant les principes philosophiques derrière le “Zen de Python”, qui sont les principes directeurs de la conception du langage Python.
How to use Python’s min() and max() with nested lists: Article expliquant comment utiliser les fonctions min() et max() de Python avec des listes imbriquées pour trouver les éléments minimaux et maximaux.
for/else in Python: Article expliquant l’utilisation de la clause else avec les boucles for en Python et dans quels cas elle est utile.
Why does python use ‘else’ after for and while loops?: Une discussion sur Stack Overflow expliquant pourquoi Python utilise la clause else après les boucles for et while, et comment elle fonctionne.
Generator comprehensions in Python: Documentation officielle sur les expressions de générateur en Python, qui permettent de créer des générateurs de manière concise et élégante.
How to re-raise an exception in nested try/except blocks?: Une discussion sur Stack Overflow expliquant comment ré-élever une exception dans des blocs try/except imbriqués en Python.
Python File I/O: Documentation officielle sur les opérations d’entrée/sortie de fichiers en Python, expliquant comment lire et écrire des fichiers en Python.
Lazy Method for Reading Big File in Python?: Une discussion sur Stack Overflow proposant des méthodes efficaces pour lire de gros fichiers de manière paresseuse en Python.
How do I merge two dictionaries in a single expression (taking union of dictionaries)?: Une discussion sur Stack Overflow expliquant comment fusionner deux dictionnaires en une seule expression en Python.
Python Dictionary Tips: Article fournissant des conseils utiles sur l’utilisation efficace des dictionnaires en Python.
What are the differences between type() and isinstance()?: Une discussion sur Stack Overflow expliquant les différences entre les fonctions type() et isinstance() en Python et quand les utiliser.
Python 3 Tutorial by Aman Chadha: Ce tutoriel Python 3 fournit une introduction complète au langage de programmation Python, couvrant les concepts de base, les structures de contrôle, les fonctions, les classes, les modules et bien plus encore. Il est rédigé de manière claire et accessible, ce qui en fait une ressource utile pour les débutants et les programmeurs intermédiaires qui souhaitent renforcer leurs connaissances en Python.
En consultant ces références, vous pourrez approfondir votre compréhension des concepts abordés dans ce notebook et continuer à développer vos compétences en Python.
__main__
Maintenant TIME TO PRACTICE ! 💪
Je t’ai concocté une série d’exercices passionnants 🌟 qui te permettront non seulement de créer de nouvelles classes, mais aussi de (re)découvrir des notions essentielles de la programmation Python 🐍.
Ces exercices sont spécialement conçus pour booster ta compréhension des principes de la programmation orientée objet 🔄, tout en te donnant l’occasion de manipuler des attributs, de gérer des méthodes, et d’explorer des interactions complexes entre objets.
Bonne courage et surtout, prends du plaisir en codant ! 🚀✨
RappeurCrée une classe Rappeur avec les attributs suivants :
nom : le nom du rappeur.
flow : une description du style de flow du rappeur.
albums : une liste des noms d’albums du rappeur.
La classe doit aussi inclure une méthode introduction() qui affiche une phrase décrivant le rappeur et une méthode sortir_album() qui prend le nom d’un nouvel album et l’ajoute à la liste des albums.
Pour la méthode sortir_album(), assure-toi de vérifier que l’album n’est pas déjà dans la liste avant de l’ajouter. Cela évitera les doublons dans la discographie du rappeur.
Ce cours est sous licence Creative Commons Attribution-NonCommercial 4.0 (CC BY-NC 4.0) International licence.